I. Field of the Invention
This invention relates generally to apparatus for coupling a plurality of terminal devices to a serial digital data bus, and more particularly to terminal controller apparatus for receiving and transmitting wordstrings on a time division multiplexed basis between multiple terminal devices on a non-interfering basis.
II. Discussion of the Prior Art
It is well known in the art to employ digital data buses to provide for communication between a multiplicity of digital computers or digital subsystems. In such a system, a multiplicity of terminal controllers are arranged on a time division multiplexed serial bus where the terminal controllers coordinate traffic between the various subscribers on the bus. In such systems, it is typical to communicate by converting all messages into one or more packets, each packet having a format comprising an address heading, date and error correction code, wherein the packet format is defined by the data bus protocol. Each terminal controller thus communicates with the bus and additionally with its own subscriber which may be a computer or other digital subsystem. Such a system must have a positive control means to assure data integrity from a source of data (subscriber A) through the data bus to a destination (subscriber B).
This invention relates to an improved method of assuring data integrity at the interface between a subscriber and terminal controller. An exemplary data bus for which this invention is especially applicable is known as "ARINC 629", which is an emerging standard for a new data bus for the air transport industry. It is best described at this time by a paper entitled "Draft Four of Project Paper 629 Multi-transmitter Data Bus Part I Protocol Description" dated Sep. 3, 1987, and prepared by the Airlines Electronic Engineering Committee. The ARINC 629 standard defines a linear bidirectional serial data bus as well as a data bus terminal controller. The data bus terminal controller is responsible for the physical layer and the protocol layer of the data bus as those terms are defined by the International Organization for Standardization (ISO) Open Systems Interconnection (OSI) reference model as described in ISO 7498. An example of such a terminal controller is the autonomous data bus terminal PD 65150R-080 manufactured by the NEC Corporation of Japan.
All ARINC 629 messages are comprised of one or more packets referred to as "wordstrings". Communication of wordstrings between the subsystem and the terminal controller is via the terminal memory. A separate region of memory is used for each type of wordstring based on data type, source of data and destination of data. Terminal memory can thus be viewed as a mail box having specified regions of memory for incoming and outgoing mail on the basis of the addressee.
The transmission of a wordstring from subsystem A to subsystem B is typically accomplished by the following steps: (1) Subsystem A writes the wordstring data to the region of terminal memory defined for a wordstring destined for subsystem B. (2) Terminal controller A autonomously transmits an address header hereinafter referred to as a "label word", identifying terminal B as the destination of the wordstring followed by the data read from terminal memory A. (3) Terminal controller B, upon recognizing the label word, strips the label word and transfers the data transmitted by terminal controller A into the specified region of terminal memory B. (4) When terminal controller B has completely received the wordstring, it generates a vectored interrupt to subsystem B to inform it that data is available in terminal memory.
From the foregoing it can thus be seen that there is a need to control communication to assure consistency of wordstring data. Specifically, a subsystem must be prevented from writing a new outgoing wordstring to the terminal memory before the terminal controller has completed the transmission of the present wordstring. Similarly, the subsystem must be prevented from reading a wordstring from the terminal memory before the terminal controller has completed the receipt. In the prior art, this problem has been solved using software resident in the processing section of the subsystem. Specifically, a flag was read by software to determine whether a wordstring was in the midst of either reception or transmission. If activity is detected, the processing system is forced to defer access to the data until the data activity (transmission or reception) is complete. This solution causes the processing system to defer access to data if the flag is set, thus putting the burden on the processing section throughput. The potential also exists for the processing section to establish a beat frequency with the terminal and the reading of the flag, thus causing the appearance of a flag always being set for a particular wordstring.